Computer networking is accomplished using components which include a set of networking protocols. A wide variety of protocols are known, and not all combinations of protocols are compatible with one another. Familiar protocols include the Transmission Control Protocol ("TCP"), the Internet Protocol ("IP"), the NetWare Core Protocol ("NCP") (NETWARE is a trademark of Novell, Inc.), the User Datagram Protocol ("UDP"), the Sequenced Packet Exchange protocol ("SPX"), the Internetwork Packet Exchange protocol ("IPX"), and many others.
Protocol stack components interface with one another through the exchange of data packets and other data/control structures such as event control blocks ("ECBs"), and through calls to one another's routines. ECBs are described in "ODI Specification Protocol: Stacks and MLIDs (C Language)," which is commercially available from Novell, Inc. of Orem, Utah. Protocol incompatibilities manifest themselves as a lack of space, encoding differences, or a difference in functionality in the structures and/or routines that are available for one protocol to communicate with another protocol. For instance, IPX packets use 10-byte source and destination addresses while the IP packet format only allocates 4-byte addresses. Thus, full IPX addresses are incompatible with IP addresses.
Such incompatibilities limit the availability of protocol functionality. For instance, NCP defines a wide variety of routines for using and managing information in networks, including file system services, directory services, printing services, and security services. But these services rely on lower-level services provided by IPX. Thus, network users whose system does not support IPX generally do not have access to NCP services. Stated differently, NCP and IP are incompatible in conventional systems (as are SPX and IP, NCP and UDP, SPX and UDP, and TCP and IPX).
"Tunneling" is a process which links otherwise incompatible protocols by continually encapsulating structures used by one protocol into (more or less) equivalent structures used by another protocol. However, this encapsulation process adds significant overhead to the network and also introduces the risk that information will be lost or corrupted by improper encapsulation or decapsulation.
To illustrate tunneling, consider first a conventional system, containing no tunneling, in which an NCP service calls an IPX service. The system does not use IP or any other alternative to IPX, but instead relies on IPX. After receiving information from the NCP protocol, the IPX protocol would call lower level protocols to transmit information over a "wire"; as used herein, "wires" include one or more links such as copper wire, cable, optical fibers, microwave transceivers, satellites, and other transmission media. At the other end of the wire, a second instance of IPX would receive the information and pass it upward in turn to a second instance of NCP.
Now assume that transmission over the wire is to be accomplished using IP. In a tunneling system, both IP and IPX are used, even though IP and IPX duplicate much of each other's functionality from a network architecture point of view. The first NCP instance hands information to the first IPX instance, as before. However, in the tunneling system the first IPX instance has been modified so that it calls an encapsulation routine from an encapsulation module instead of calling the lower level protocols. The encapsulation routine encapsulates the information, which is in IPX format, creating a packet that fits IP format and then calls IP (hence "tunneling" into IP through IPX). IP transmits the information over the wire (with the assistance of lower level protocols as is usual for IP) to a second IP instance. The second IP instance hands the received information to a second conversion module. The conversion module converts the information back into IPX format and passes it to a second instance of IPX. Finally, the second IPX instance passes the information up to a second instance of NCP.
In view of the inefficiencies and risks of tunneling and the benefits of connectivity, it would be an advancement in the art to provide a system and method for placing otherwise incompatible network protocols in communication with one another without tunneling through one protocol into another protocol that duplicates much of the first protocol's network functionality.
It would be an additional advancement to provide such a system and method which reduces or eliminates the use of conversion routines.
It would also be an advancement to provide such a system and method which do not require changes in packet formats or other data/control structures that are already in wide use by numerous individuals and institutions.
Such a method and system for combining network protocols is disclosed herein.